package com.nowcoder.community.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nowcoder.community.entity.Message;
import com.nowcoder.community.entity.PageEntity;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author ChenJH
 * @since 2022-12-26
 */
public interface IMessageService extends IService<Message> {
    //    查询当前用户的会话列表 针对每个会话只返回一条最新消息
    Page<Message> selectConversations(int userId, PageEntity pageEntity);

    //    查询当前用户的会话数量
    int selectConversationCount(int userId);

    //    查询某个会话 包含的私信列表
    Page<Message> selectLetters(String conversationId, PageEntity pageEntity);

    //    某个会话包含私信数量
    int selectLetterCount(String conversationId);

    //    查询未读私信数量
    int selectLetterUnreadCount(int userId, String conversationId);

    boolean updateStatus(List<Integer> ids, int status);

    boolean readMessage(List<Integer> ids);

    boolean addMessage(Message message);

    Message findLatestNotice(int userId,String topic);

    int findNoticeCount(int userId,String topic);

    int findNoticeUnreadCount(int userId,String topic);

    Page<Message> findNotices(int userId,String topic,PageEntity pageEntity);
}
